package com.zw.mes.module.prodtaskmanager.entity;

import java.io.Serializable;
import java.util.Calendar;
import java.util.Date;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import javax.persistence.Transient;

/**
 * 总调计划变更记录从表
 * @author 徐一贺
 * @TableName prod_pla_cha
 */
@Data
public class ProdPlaCha implements Serializable {
    /**
     * 主键
     */
    private Integer prpcId;

    /**
     * 外键：依赖总调计划主表主键
     */
    private Integer prpcPropId;

    /**
     * 计划名称
     */
    private String prpcNam;

    /**
     * 计划码
     */
    private String prpcCod;

    /**
     * 序号
     */
    private Integer prpcOrdNo;

    /**
     * 变更类型
     */
    private Integer prpcFieldType;

    /**
     * 变更前的值
     */
    private String prpcBef;

    /**
     * 变更后的值
     */
    private String prpcAft;

    /**
     * 变更方式
     */
    private Integer prpcMode;

    /**
     * 变更原因
     */
    private String prpcChaRea;

    /**
     * 变更时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date prpcChaDat;

    /**
     * 变更人ID
     */
    private Integer prpcChaUsrId;
    /**
     * 操作系统
     */
    private String prpcOs;
    /**
     * 浏览器
     */
    private String prpcBrowser;
    /**
     * 客户端IP地址
     */
    private String prpcIp;

    /**
     * 生产令号
     */
    private String propProdNo;

    /**
     *  项目名称
     */
    private String proName;
    /**
     *  变更内容
     */
    private String changeContent;
    /**
     * 变更人
     */
    private String prpcChaUsr;
    /**
     * 计划类别
     */
    private String prpcCodText;
    /**
     *  生产令数量
     */
    private Integer prodNum;
    /**
     * 交货时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date prodDelDat;

    @Transient
    private Date startTime;

    /**
     * 结束时间
     */
    @Transient
    private Date endTime;

    public void setEndTime(Date endTime) {
        if (endTime != null) {
            Calendar cal = Calendar.getInstance();
            cal.setTime(endTime);
            cal.add(Calendar.DAY_OF_YEAR, 1);
            this.endTime = cal.getTime();
        }
    }


    @Transient
    private Date changeStartTime;

    /**
     * 结束时间
     */
    @Transient
    private Date changeEndTime;

    public void setChangeEndTime(Date changeEndTime) {
        if (changeEndTime != null) {
            Calendar cal = Calendar.getInstance();
            cal.setTime(changeEndTime);
            cal.add(Calendar.DAY_OF_YEAR, 1);
            this.changeEndTime = cal.getTime();
        }
    }

    private static final long serialVersionUID = 1L;

    /**
     * 是否审核通过：0否，1是
     */
    private Integer procStatus;
}